package logic.file;

import java.io.File;
import java.sql.Time;
import java.util.Date;

import logic.FileHelper;

public class LocalFile implements IFile {
	
	File file;
	
	public LocalFile(String path) {
		file = new File(path);
	}

	@Override
	public String getName() {
		return file.getName();
	}

	@Override
	public String getPath() {
		return file.getPath();
	}

	@Override
	public String getType() {
		if (isDirectory()) {
			return "<DIR>";
		}
		return FileHelper.getExtension(file);
	}
	
	//TODO cellremderer niech przelicza do human readable
	@Override
	public long getSize() {
		return file.length();
	}

	@Override
	public void delete() {
		file.delete();		//usuwa tylko pliki lub PUSTE foldery
	}
	
	public String toString() {				//toString przedefiniowany w IDirectory
		return file.toString();
	}

	//TODO prawdopodobnie konieczne wywoływanie metod natywnych, ew. metody z klasy Files
	@Override
	public String getFilePermissions() {
		return "not support. yet";
	}

	@Override
	public long getLastModifiedDate() {
		//TODO
		return file.lastModified();
	}

	@Override
	public boolean isDirectory() {
		return file.isDirectory();
	}

	public long calcDirSize() {
		// TODO Auto-generated method stub
		return 0;
	}
	//IDirectory będzie bezpieczniejsze i lepsze
	/**
	 * 
	 * @param path ścieżka do folderu docelowego
	 */
	@Override
	public void copyTo(String path) {
		//TODO czytanie po buforze o jakims rozmiarze i zapisywanie
	}

}
